さくらインターネット提供、IoT版 IchigoJamボード「IchigoSoda」をGET。今回は JavaScript OS 「IchigoLatte」を焼いて使ってみます。写真のようにシリアル線をつないだら、
IchigoLatte ファームウェアを以下のようにして焼きます。
$ lpc21isp -control ichigolatte.jp.hex /dev/tty.usbserial 115200 1200
次は sakura.io モジュールを取り付け。LTE対応のアンテナ付きSIM基板です。モジュールは事前に登録設定しておいてください。
電源を入れれば IchigoLatte のシェル「lash」が立ち上がります。では
lash> vi .
でテキストエディタに入り、sakura.io モジュール のドライバを打ち込みます。
function iotr(){ i2cw(0x4f,0x30,0x00,0x30); var s,l,c,t; var v0,v1,v2,v3,v4,v5,v6,v7; var o0,o1,o2,o3,o4,o5,o6,o7; i2cr(0x4f,s,l,c,t,v0,v1,v2,v3,v4,v5,v6,v7,o0,o1,o2,o3,o4,o5,o6,o7); var r=(v0<< 0)+(v1<< 8)+(v2<<16)+(v3<<24); return (s==1)*r; } function iotw(n){ var n0=(n>> 0)&0xff; var n1=(n>> 8)&0xff; var n2=(n>>16)&0xff; var n3=(n>>24)&0xff; i2cw(0x4f,0x21,0x0a,0x00,0x69,n0,n1,n2,n3,0,0,0,0,n0^n1^n2^n3^0x42); var r; i2cr(0x4f,r); return r; }
このドライバ部分の内容が気になる方はこちら。
while(1){ if( btn() ){ iotw(1); sleep(500); } if( iotr() ){ led(1); sleep(500); led(0); } }
今回はこのようなプログラムにしました。ボード上のボタンが押されたらLTE回線経由で 1 を送ります。また、LTE回線経由でデータが到着したらボード上のLEDを光らせます。
では sakura.io の管理画面から連携サービス WebSocket を作成し、URLをゲットします。
今回は websocket.org の Test アプリを拝借。
「Location:」にゲットしたURL「wss://api.sakura.io/ws/v1/xxxxx….x」を貼り付けて「Connect」をクリック。「Log:」に CONNECTED が表示されればOK。
ほっておいても何秒かごとに keepalive が到着するようです。
さて、準備は完了。
lash> ms .
と打ってプログラムを実行。
ボード上のボタンを押します。
すると「value:1」が到着、いいですねー。
{ "type":"channels", "module":"xxxxxx...x", "payload":{ "channels":[ { "channel":0, "type":"i", "value":1 } ] } }
次はボードにデータを送ってみます。このようなJSONテキストを
「Message:」に貼り付けて「Send」。
するとボード上のLEDが光ります。ちょっと小さくて感動がうすいので、
LEDを並列に増設しました(よい子は抵抗をかませましょう)。これなら大きくてみやすい。「Send」するたびにLEDが光ります、とっても簡単。モバイルバッテリーで外に持ち出してセンサーをつけて値を送ってもいいし、データが到着したらモーターを回してもいいですね。sakura.io便利、IchigoSoda便利!海や山で動く面白ガジェット、思いついちゃった!?
いよいよ応募受付がはじまった「PCNこどもプロコン2018」、今年の表彰会場は福岡!応募締め切りは 12/31 、LTE回線を使ったIoTな作品もお待ちしています!
.